﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ExpenseSystem.Common;

namespace ExpenseSystem.Core.Authority
{
    public class StateInhibitionMaker: SetInhibitionMaker
    {
        public override SetInhibition Make()
        {
            result.Fields.Add("Confirmed");
            result.Fields.Add("Approver");
            result.Fields.Add("State");
            return result;
        }
    }
    public class SetCustomerInhibitionMaker:SetInhibitionMaker
    {
        private SetInhibitionMaker orgMaker;
        public SetCustomerInhibitionMaker(SetInhibitionMaker setInhibitionMaker)
        {
            orgMaker = setInhibitionMaker;
        }
        public override SetInhibition Make()
        {
            result = orgMaker.Make();
            result.Fields.Add("Receiveable");
            result.Fields.Add("Received");
            result.Fields.Add("SalesBonus");
            result.Fields.Add("DesignerBonus");
            result.Fields.Add("ServiceBonus");
            return result;
        }
    }

    public class SetOrderInhibitionMaker : SetInhibitionMaker
    {
        private SetInhibitionMaker orgMaker;
        public SetOrderInhibitionMaker(SetInhibitionMaker setInhibitionMaker)
        {
            orgMaker = setInhibitionMaker;
        }
        public override SetInhibition Make()
        {
            result = orgMaker.Make();
            result.Fields.Add("Receipt");
            result.Fields.Add("SalesBonusPaid");
            result.Fields.Add("DesignerBonusPaid");
            result.Fields.Add("ServiceBonusPaid");
            return result;
        }
    }
}
